package com.ziyueyuwen.xiniao.service;

import com.ziyueyuwen.xiniao.bean.ZyLessonMessageTask;
import com.ziyueyuwen.xiniao.enums.LessonModuleEnum;
import com.ziyueyuwen.xiniao.enums.MessageTypeEnum;

import java.util.Date;
import java.util.List;

/**
 * @author wancheng  on 2018/12/20.
 */
public interface MessageTaskService {
    /**
     * 是否可以发送该消息
     * @param lessonId
     * @param typeEnum
     * @return
     */
    Boolean ifHasTask(Integer lessonId, MessageTypeEnum typeEnum);

    /**
     * 课前预习2天
     * @param before
     * @param after
     */
    void lessonPreviewForTowDay(Date before,Date after);

    /**
     * 课前预习20小时
     * @param before
     * @param after
     */
    void lessonPreviewForTwentyHour(Date before,Date after);

    /**
     * 上课提醒1小时
     * @param before
     * @param after
     */
    void lessonBeforeOneHour(Date before,Date after);

    /***
     *
     * 上课提醒15分钟
     * @param before
     * @param after
     */
    void lessonBeforeFifteenMinute(Date before,Date after);

    /**
     * 10分钟课后作业
     * @param before
     * @param after
     */
    void lessonHomework(Date before,Date after);

    /**
     * 10分钟课后总结
     * @param before
     * @param after
     */
    void lessonSummarize(Date before,Date after);

    /**
     * 10分钟课后拓展
     * @param before
     * @param after
     */
    void lessonExpansion(Date before,Date after);

    /**
     * 10分钟课后回放
     * @param before
     * @param after
     */
    void lessonReplay(Date before,Date after);

    /**
     * 课后48小时作业未提醒
     * @param before
     * @param after
     */
    void lessonHomeworkUnCommit(Date before,Date after);

    /**
     * 通过课节id和课程id获取
     * @param courseId
     * @param lessonIndex
     * @param lessonModuleEnum
     * @return
     */
    List<ZyLessonMessageTask> getByCourseIdAndLessonIndex(Integer courseId, Integer lessonIndex, LessonModuleEnum lessonModuleEnum);

}
